<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            list-style: none;
        }

        .box {
            width: 90%;
            margin: 0 auto;
            overflow: hidden;
            position: relative;
        }

        ul {
            display: flex;
            position: relative;
            left: 0;
            transition: left .2s linear;
        }

        ol {
            display: flex;
            position: absolute;
            bottom: 10px;
            width: 100%;
            left: 0;
            justify-content: center;
        }

        ol>li {
            width: 10px;
            height: 10px;
            background-color: #fff;
            margin: 0 8px;
        }

        ol>li.action {
            background-color: black;
        }

        img {
            border-radius: 5px;
            display: block;
        }

        .boximg {
            width: 90vw;
        }
    </style>
</head>

<body>
    <div class="box">
        <ul>

        </ul>
        <ol>
            <!-- <li></li> -->
        </ol>
    </div>
    <script>
          /*  <h1>轮播图</h1>
    <p>
        1.建立盒子box，设置盒子标签 ul li 添加图片img
        2.设置盒子内跟随图片变化的点标签 Ol li
        3.给分别给盒子box ul li Ol li img 设置样式，给盒子加定位，溢出隐藏等样式，
        给ul加相对定位，向左匀速移动2s等。
        4. 在js处引入ul box ol 等元素。
        5.给标签设置初始样式，页面加载完成默认回到第0张。
        6.点击下一章实现ul的left移动到下一张li 的位置
        7，向左滑动的时候，当滑动到最后一张的时候，图片的下一找张变成第一张图片，
        8.向右滑动的时候，当划到第一张的时候，图片变成最后一张。
    </p> */
        var image = ["https://m15.360buyimg.com/mobilecms/s1062x420_jfs/t1/33428/39/16450/106681/6311cad7Ef9b3d856/f10720b7f8f38937.jpg!cr_1053x420_4_0!q70.jpg",
            "https://m15.360buyimg.com/mobilecms/jfs/t1/3230/40/20384/44107/62daf2d9E5c5e0e55/03ab360c40ddc266.jpg!cr_1125x449_0_166!q70.jpg",
            "https://m15.360buyimg.com/mobilecms/jfs/t1/110775/22/28940/94917/62e5bc6dE569b2244/5d14fc9f06d87341.jpg!cr_1125x449_0_166!q70.jpg"];

        var ul = document.querySelector(".box > ul");
        var ol = document.querySelector(".box > ol");
        var box = document.querySelector(".box");

        var str = "", str1 = "";
        for (let k = 0; k < image.length; k++) {
            str += `<li><img class="boximg" src="${image[k]}" alt=""></li>`;
            if (k == 0) {
                str1 += `<li class="action"></li>`;
            } else {
                str1 += `<li></li>`;
            }
        }
        ul.innerHTML = str;
        ol.innerHTML = str1;
        // 给标签设置初始样式
        ul.style.width = image.length * box.offsetwidth + "px";
        // 页面加载完成后默认显示第0张
        // 记录当前显示图片(li)的索引值 (点击下一张或者上一张都是由当前显示的图进行上一张或下一张)
        var i = 0;
        var ollis = document.querySelectorAll(".box > ol > li");
        // 点击下一张实现ul的left移动到下一张li的位置
        // 在box上 按下 抬起  记录按下时与抬起时手指触碰的位置
        // 根据两个x判断手指是向左滑还是向右滑了
        var start = 0;
        box.ontouchstart = function (e) {
            start = parseInt(e.touches[0].clientX);
        }
        box.ontouchend = function (e) {
            var end = parseInt(e.changedTouches[0].clientX);
            if (start > end && start - end >= 50) {
                // 向左滑动
                // console.log("向左滑动大于10px");
                // 显示下一张
                i++;
                if (i == image.length) i = image.length - 1;
            } else if (end - start >= 50) {
                // 向右滑动
                // console.log("向右滑动大于10");
                // 显示上一张
                i--;
                if (i < 0) i = 0;
            }
            var l = i * -box.offsetWidth;
            ul.style.left = l + "px";
            // 小圆点
            for (let m = 0; m < ollis.length; m++) {
                ollis[m].classList.remove("action");
            }
            ollis[i].classList.add("action");
        }
    </script>
</body>

</html>